function HandleAUsers(gui, user, date, options, data) {
  this._gui = gui;
  this._user = user;
  this._date = date;
  this._options = options;
  this._data = data;
  this._popupBox = new ModulePopupBox();

  this._createElements();
};

HandleAUsers.prototype._createElements = function() {
  var tr, td, _self = this;
  DOMUtils.removeTableRows(this._gui.users, 1);
  this._gui.add.onclick = function() { location.href = '?t=auser';
                                     };

  if (this._data[0].data.length == 0) {
    tr = this._gui.users.insertRow(-1);
    td = tr.insertCell(-1);
    td.colSpan = 9;
    td.style.height = '24px';
    td.style.textAlign = 'left';
    td.style.paddingLeft = '5px';
    td.appendChild(document.createTextNode('n/a'));
  }

  MiscUtils.sort(this._data[0].data, ['account']);
  for(var i = 0, il = this._data[0].data.length; i < il; i++) {
    var u = this._data[0].data[i];
    if (u.type == Constant.USER_TYPE_ADMINISTER) {
      continue;
    }
    tr = this._gui.users.insertRow(-1);
    tr.style.backgroundColor = (tr.rowIndex % 2 == 0) ? '#ececec' : '#fff';
    
    td = tr.insertCell(-1);
    td.style.borderRight = 'solid 1px #bbb';
    td.style.height = '24px';
    td.style.textAlign = 'left';
    td.style.padding = '0 5px';
    var str = PPublishUtils.branchShow(u);
    td.appendChild(document.createTextNode((str != '') ? str : '-'));
    
    td = tr.insertCell(-1);
    td.style.padding = '0 5px';
    td.style.borderRight = 'solid 1px #bbb';
    td.appendChild(document.createTextNode((u.name) ? u.name : '-'));
    
    td = tr.insertCell(-1);
    td.style.padding = '0 5px';
    td.style.borderRight = 'solid 1px #bbb';
    td.appendChild(document.createTextNode((u.account) ? u.account : '-'));
    
    td = tr.insertCell(-1);
    td.style.padding = '0 5px';
    td.style.borderRight = 'solid 1px #bbb';
    td.appendChild(document.createTextNode((u.type) ? u.type : '-'));
    
    td = tr.insertCell(-1);
    td.style.padding = '0 5px';
    td.style.borderRight = 'solid 1px #bbb';
    td.appendChild(document.createTextNode((u.email) ? u.email : '-'));
    
   
    td = tr.insertCell(-1);
    td.style.height = '24px';
    td.style.textAlign = 'left';
    td.style.padding = '0 5px';
    
    var edit = document.createElement('img');
    edit.src = 'image/edit.png';
    edit.style.cursor = 'pointer';
    edit.style.margin = '0 0 0 5px';
    edit._u = u;
    edit.onclick = function() { location.href = '?t=auser&i=' + this._u.id; };
    td.appendChild(edit);
    var remove = document.createElement('img');
    remove.src = 'image/delete.png';
    remove.style.cursor = 'pointer';
    remove.style.margin = '0 0 0 5px';
    remove._u = u;
    remove.onclick = function() { var div = document.createElement('div');
                                  var u = this._u;
                                  var pos = DOMUtils.findPos(this);
                                  var content =  '1. We will not remove any imported data' + '\n\n' + 
                                                 '2. But we can not display this user\'' + 's name anywhere';
                                  var func1 = function() { _self._popupBox._close();
                                                           new RequestUtils()._write('pz_user', [], [u], function() { location.reload(); }, { pos: pos });
                                                         };
                                  var func2 = function() { _self._popupBox._close();
                                                         };
                                  MiscUtils.dialog(_self._popupBox, pos, div, func1, func2, { t: 'Delete User Reminder', width: 500, height: 50 });
                                  new ModuleDialogReminder(document, div, null, null, _self._user, _self._date, {value: content, nonFtp: true});
                                };
    td.appendChild(remove);
  }
};
